<template>
  <div>
    <div
        style="width: 400px;height: 350px;margin: 150px auto;background-color: rgba(109,149,224,0.5);border-radius: 10px">
      <div style="width: 100%;height: 100px;font-size: 30px;line-height: 100px;text-align: center;color: #4a5ed0">
        欢迎登录
      </div>
      <div style="margin-top: 25px;text-align: center;height: 320px">
        <el-form :model="user">
          <el-form-item>
            <el-input v-model="user.userName" prefix-icon="el-icon-user" style="width: 80%"
                      placeholder="请输入用户名"></el-input>
          </el-form-item>
          <el-form-item>
            <el-input v-model="user.password" show-password prefix-icon="el-icon-lock" style="width: 80%"
                      placeholder="请输入密码"></el-input>
          </el-form-item>
          <el-form-item>
            <div style="display: flex; justify-content: center">
              <el-input v-model="user.verCode" prefix-icon="el-icon-user" style="width: 42%; margin-right: 10px"
                        placeholder="请输入验证码"></el-input>
              <img :src="captchaUrl" @click="refreshCaptcha()" width="140px" height="33px" alt="验证码"/>
            </div>
          </el-form-item>
          <el-form-item>
            <el-button style="width: 80%;margin-top:10px" type="primary" @click="login()">登录</el-button>
          </el-form-item>
        </el-form>
      </div>
    </div>
  </div>
</template>

<script>
import axiosUtil from "@/utils/axiosUtil";

export default {
  name: 'loginView',
  data() {
    return {
      user: {},
      captchaUrl: null,
      key: null
    }
  },

  methods: {
    // 登录
    login() {
      axiosUtil.post("/user/login?key=", this.user).then(res => {
        if (res["code"] === '1') {
          // 存用户到 localStorage 中
          localStorage.setItem("user", JSON.stringify(res["data"]))
          this.$message.success('登录成功');
          // 跳转到首页
          this.$router.push("/");
        } else {
          this.$message.error(res["msg"]);
          this.refreshCaptcha();
          this.user.verCode = ''
        }
      }).catch(error => {
        console.error('网络错误:', error);
        this.$message.error('网络错误，请稍后重试');
      });
    },
    // 刷新验证码
    refreshCaptcha() {
      this.user.key = Math.random();
      this.captchaUrl = 'http://localhost:8081/api/captcha/arithmeticCaptcha?key=' + this.user.key;
    },
  },
  mounted() {
    this.refreshCaptcha();
  }
}
</script>
